package com.edu.method;

import javax.swing.plaf.FontUIResource;
import java.util.Random;
import java.util.Scanner;

public class MethodPractice07 {
    public static void main(String[] args) {
        //案例小总结;双色球模拟中奖情况————六个红球，一个蓝球，都随机生成，然后用户自己输入一个数字，判断是否中奖
        //要求红球在1-33内，蓝球在1-16内
        int[] lucknum =createNum();//调用方法随机生成七个数字
        int[] Inputnum=InputNum();//用户输入七个数字
        judge(lucknum,Inputnum);
    }

    //随机生成六个不重复的红球，一个蓝色球
    public static int[] createNum(){
        Random r = new Random();
        int[] a=new int[7];
        //先对六个红球下手
        for (int i = 0; i < a.length - 1; i++) {//循环随机生成的第i个球

            while(true){
                boolean flag=true;//用来标记是否重复
                int data = r.nextInt(33) + 1;
                for (int j = 0; j < i; j++) {
                    if(data==a[j]){
                        flag=false;//代表该随机数重复
                        break;
                    }
                }
                if(flag){
                    a[i]=data;
                    break;
                }
            }
        }
        //对蓝球下手
        a[a.length-1]=r.nextInt(16)+1;
        return a;
    }
    //用户输入七个数字
    public static int[] InputNum(){
        int[] a=new int[7];
        Scanner s = new Scanner(System.in);
        System.out.println("请输入6个不重复的号码（红球），在1-33范围内：");
        for (int i = 0; i < a.length-1; i++) {
            a[i]=s.nextInt();
        }
        System.out.println("请输入一个1-16范围内的号码（蓝球）：");
        a[a.length-1]=s.nextInt();
        return a;
    }
    //判断是否中奖，以及中奖多少元
    public static void judge(int[] lucknum,int[] usernum){
        //因为红球与蓝球个数相中不同时，会有不同的中奖金额。所以要定义两个变量来记录红球与蓝球相中的个数
        int redNum=0;
        int blueNum=0;
        for (int i = 0; i < lucknum.length - 1; i++) {
            for (int j = 0; j < usernum.length - 1; j++) {
                if(lucknum[i]==usernum[j]){
                    redNum++;
                    break;
                }
            }
        }
        blueNum=lucknum[lucknum.length-1]==usernum[usernum.length-1]?1:0;
        System.out.print("中奖号码是：\t");
        printArray(lucknum);
        System.out.print("您投注的号码是：\t");
        printArray(usernum);
        System.out.println("您的红球中了"+redNum+"个");
        System.out.println("您的蓝球中了"+blueNum+"个");
        if(blueNum==1&&redNum<3){
            System.out.println("恭喜你中了五元钱");
        }else if((blueNum==1&&redNum==3)||blueNum==0&&redNum==4){
            System.out.println("恭喜你中了10元钱");
        }else if((blueNum==1&&redNum==4)||blueNum==0&&redNum==5){
            System.out.println("恭喜你中了200元钱");
        }else if(blueNum==1&&redNum==5){
            System.out.println("恭喜你中了3000元钱");
        }else if(blueNum==0&&redNum==6){
            System.out.println("恭喜你中了500万元钱");
        }else if(blueNum==1&&redNum==6){
            System.out.println("恭喜你中了1000万元钱");
        }else
            System.out.println("很可惜，你未中奖");
    }
    //将数组打印一遍
    public static void printArray(int[] a){
        System.out.print("a=[");
        for (int i = 0; i < a.length; i++) {
            System.out.print(i==a.length-1?a[i]:(a[i]+","));
        }
        System.out.println("]");
    }
}
